package com.nnnu.wsnackshop.service;

import com.nnnu.wsnackshop.pojo.dto.AssignProductTagsDTO;
import com.nnnu.wsnackshop.pojo.dto.RemoveProductTagsDTO;
import com.nnnu.wsnackshop.pojo.entity.ProductTags;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.wsnackshop.pojo.vo.TagVO;

import java.util.List;

/**
 * <p>
 * 商品-标签关联 服务类
 * </p>
 *
 * @author zk
 * @since 2025-05-14
 */
public interface IProductTagsService extends IService<ProductTags> {

    /**
     * 查询某商品已关联的所有标签
     */
    List<TagVO> listTagsByProduct(Long productId);

    /**
     * 批量为商品分配标签（先清空，再新增）
     */
    void assignTags(AssignProductTagsDTO dto);

    /**
     * 批量移除商品标签关联
     */
    void removeTags(RemoveProductTagsDTO dto);

    /**
     * 查询热门标签
     * 
     * @param limit 返回数量限制
     * @return 热门标签列表
     */
    List<TagVO> getPopularTags(Integer limit);
}
